import React, { Component, PureComponent } from 'react'

export default class Test extends Component {
  state = {
    msg: '123',
    obj: { name: 'zs' },
  }
//   shouldComponentUpdate(nextProps, nextState) {
//     // 注意: 其他钩子中形参接收到的都是旧的props和state数据,通过this.state或this.props获取新数据. 但是shouldComponentUpdate刚好相反,形参接收的是新的.this.state或this.props是旧的
//     // 判断:判断上一次的props数据和新的props数据是否相同,相同则return false, 不同则return true
//     //获取上一次的props
//     // console.log(this.props)
//     //获取最新的props
//     // console.log(nextProps)
//     // if (this.props.xxx != nextProps.xxx) {
//     //   return true
//     // } else {
//     //   return false
//     // }
//     //     return this.props.xxx !== nextProps.xxx || this.state.msg !== nextState.msg
//     console.log(this.state.obj.name)
//     console.log(nextState.obj.name)
//     return false
//   }
  render() {
    console.log('test组件更新了')
    return (
      <div>
        <button
          onClick={() => {
            // this.state.obj.name = 'ls'
            const newObj = { ...this.state.obj }
            newObj.name = 'ls'
            this.setState({
              obj: newObj,
            })
          }}
        >
          修改自己的msg
        </button>
        <hr />
        Test, {this.props.xxx}, {this.state.obj.name}
      </div>
    )
  }
}
